package com.gzc.just.play.last.war.common.message;

import java.util.HashMap;
import java.util.Map;

/**
 * 消息序列化器工厂
 */
public class SerializerFactory {
    private static final Map<Class<?>, MessageSerializer<?>> serializers = new HashMap<>();
    
    /**
     * 注册序列化器
     * @param messageType 消息类型
     * @param serializer 序列化器
     */
    public static void register(Class<?> messageType, MessageSerializer<?> serializer) {
        serializers.put(messageType, serializer);
    }
    
    /**
     * 获取序列化器
     * @param messageType 消息类型
     * @return 序列化器
     */
    @SuppressWarnings("unchecked")
    public static <T> MessageSerializer<T> get(Class<T> messageType) {
        return (MessageSerializer<T>) serializers.get(messageType);
    }
}